home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #145 (1991-10)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #145 (1991-10)(Rhein-Sieg-Soft).adf
/
HochTief
/
HT.List
< prev
next >
Wrap
Text File
|
1991-10-07
|
17KB
|
642 lines
'************************
'* HochTief *
'* *
'* written by *
'* Andreas Lesch *
'* Okerstr.30A *
'* 5090 Leverkusen 1 *
'************************
WINDOW CLOSE 1
' *********** T I T E L ***********
ON BREAK GOSUB ende
BREAK ON
DECLARE FUNCTION Move& LIBRARY
DECLARE FUNCTION OpenDiskFont& LIBRARY
main:
SCREEN 1,640,256,3,2
WINDOW 2,"",,0,1
MENU 1,0,0,""
FOR x=0 TO 7
i=i+10
y=y+.125
PALETTE x,y,0,0
LINE (0+i,0+i)-(WINDOW(2)-i,WINDOW(3)-i),x,bf
NEXT x
ON ERROR GOTO fehler
fehler=0
LIBRARY "diskfont.library"
fehler=1
LIBRARY "graphics.library"
fehler=2
LIBRARY "intuition.library"
fehler=3
i=13
COLOR 0,3
diskfont "sapphire",19
LOCATE 14,21
shadow2 " HochTief",31
LOCATE 17,23
shadow2 " by <StarSoft ©>",18
LOCATE 20,23
shadow2 " Linke Maustaste",18
CALL SetFont&(WINDOW(8),altfont&)
i=0:j=0
fl:
IF j=0 THEN i=i+.001
IF j=1 THEN i=i-.001
IF i>.8 THEN j=1
IF i<.2 THEN j=0
PALETTE 0,i,0,0
IF MOUSE(0)=0 THEN fl
WINDOW CLOSE 2
WINDOW 2,,(0,10)-(631,240),0,1
FOR farbe=0 TO 6
PALETTE farbe,0,0,0
NEXT farbe
'********** Variablen *************
Variablen:
altfont&=PEEKL(WINDOW(8)+52)
scr&=PEEKL(WINDOW(7)+46)
setzen&=5 : betrag&=100 :index=0 :h=1 :ind=1 :zaehler=1
RANDOMIZE TIMER
'********** Farben ****************
DATA .8,.8,.8, 0,0,0, .8,0,0, 0,0,.4, .3,.5,.9, 1,.2,.3
'********** Grafiken Datenfelder **
DIM SHARED KaroKlein%(30),PikKlein%(30),HerzKlein%(30),KreuzKlein%(30)
DIM SHARED KaroGross%(93),PikGross%(93),HerzGross%(93),KreuzGross%(93)
COLOR 4,2:CLS
COLOR 7,2
LOCATE 13,23 : PRINT "HochTief von Andreas Lesch <StarSoft ©>"
LOCATE 16,24 : PRINT "Geben Sie Ihren Namen ein (7 Stellen):"
LOCATE 18,34 : LINE INPUT nam1$
COLOR 4,2
AREA (51,48):AREA (47,51):AREA (51,54):AREA (55,51):AREAFILL 'Karo
AREA (90,70):AREA (82,75):AREA (90,80):AREA (98,75):AREAFILL
GET (46,48)-(56,54),KaroKlein%
GET (81,70)-(99,80),KaroGross%
CIRCLE (10,5),2:CIRCLE (14,5),2:PAINT (10,5):PAINT (14,5)
AREA (8,6):AREA (12,9):AREA (16,6):AREAFILL
CIRCLE (28,10),4:CIRCLE (36,10),4:PAINT (28,10):PAINT (36,10) 'Herz
AREA (24,11):AREA (32,16):AREA (40,11):AREAFILL
GET (7,3)-(17,9),HerzKlein%
GET (22,6)-(40,16),HerzGross%
COLOR 3,2
CIRCLE (50,15),2:CIRCLE (54,15),2:PAINT (50,15):PAINT (54,15) 'Pik
AREA (48,14):AREA (52,11):AREA (56,14):AREAFILL
LINE (52,16)-(52,17)
CIRCLE (68,10),4:CIRCLE (76,10),4:PAINT (68,10):PAINT (76,10) 'Pik
AREA (64,9):AREA (72,5):AREA (79,8):AREAFILL
AREA (72,12):AREA (70,14):AREA (74,14):AREAFILL
GET (47,11)-(57,17),PikKlein%
GET (63,5)-(81,14),PikGross%
CIRCLE (100,15),2:CIRCLE (106,15),2:CIRCLE (103,13),2
PAINT (100,15):PAINT (106,15):PAINT (103,13):LINE (103,16)-(103,17) 'Kreuz
CIRCLE (200,30),3:CIRCLE(208,30),3:CIRCLE (204,27),3
PAINT (200,30):PAINT(208,30):PAINT (204,27):LINE (204,28)-(204,30)
AREA (204,30):AREA (202,33):AREA (206,33):AREAFILL
GET (98,11)-(108,17),KreuzKlein%
GET (195,24)-(213,33),KreuzGross%
PALETTE 7,0,0,0
COLOR 1,0:CLS
'********** Programmsteuerung *****
ON MOUSE GOSUB mauskontrolle
'********** HAUPTSCHLEIFE **********
GOSUB hiscoreLesen:
GOSUB titel
HauptSchleife:
MOUSE ON
taste$=INKEY$
IF taste$=CHR$(27) THEN
ende:
IF HiJa =1 THEN GOSUB HiscoreSchreiben
MENU RESET
LIBRARY CLOSE
END
END IF
GOTO HauptSchleife
'********** Unterprogramme ********
titel:
diskfont "sapphire",19
LINE (224,2)-(387,21),3,bf
LOCATE 1,13
COLOR 3,4
PRINT " HochTief "
CALL SetFont&(WINDOW(8),altfont&)
LINE (165,25)-(451,33),3,bf
GOSUB HS
GOSUB KartenHinten
GOSUB taste
CIRCLE (168,196),70,3:PAINT (168,192),3
CIRCLE (172,194),70,4:PAINT (172,192),4
CIRCLE (464,196),70,3:PAINT (464,192),3
CIRCLE (468,194),70,4:PAINT (468,192),4
GOSUB Gesetzt
GOSUB Haben
PALETTE 0,0,.5,0 : PALETTE 1,0,.5,0
FOR FarbNr=2 TO 7
READ r,g,b
PALETTE FarbNr,r,g,b
NEXT FarbNr
RETURN
HS:
LOCATE 4,22
COLOR 5,4
PRINT "H i g h s c o r e : ";
PRINT USING "\ \";nam$,
PRINT USING "#######";score&;
PRINT " $"
RETURN
mauskontrolle:
dummy=MOUSE(0) : x=MOUSE(1) : y=MOUSE(2)
IF y>124 AND y<146 THEN
IF x>49 AND x<151 AND ja=0 THEN
LINE (50,125)-(150,145),3,bf
GOSUB Warte
GOSUB taste
IF x<99 THEN
setzen&=setzen&+1
IF setzen&>20 THEN setzen&=20
GOSUB Gesetzt
END IF
IF x>100 THEN
setzen&=setzen&-1
GOSUB Gesetzt
END IF
END IF 'Setzen
IF x>189 AND x<291 AND ja=0 THEN
ja=1 : posi%=0 :j=0
LINE (190,125)-(290,145),3,bf
IF setzen&>betrag& THEN
setzen&=betrag&
GOSUB Gesetzt
END IF
GOSUB Warte
GOSUB taste
GOSUB KartenHinten
GOSUB ZufallsZahl
altsetzen&=setzen&
END IF 'Spiel
IF x>329 AND x<431 AND j=0 THEN
LINE (330,125)-(430,145),3,bf
GOSUB Warte
GOSUB taste
posi%=posi%+110
GOSUB ZufallsZahl
IF zahl(index)<zahl(index-1) THEN GOSUB verloren ELSE setzen&=setzen&+setzen&
GOSUB Gesetzt
GOSUB Haben
IF index=5 THEN GOSUB gewonnen
END IF
IF x>469 AND x<571 AND j=0 THEN
LINE (470,125)-(570,145),3,bf
GOSUB Warte
GOSUB taste
posi%=posi%+110
GOSUB ZufallsZahl
zahl(0)=zahl(index)
IF zahl(index)>zahl(index-1) THEN GOSUB verloren ELSE setzen&=setzen&+setzen&
GOSUB Gesetzt
GOSUB Haben
IF index=5 THEN GOSUB gewonnen
END IF
END IF
IF index>2 THEN
LINE (255,162)-(375,192),3,bf
LINE (257,160)-(377,190),5,bf
LINE (266,165)-(368,185),4,bf
LOCATE 22,36 : PRINT CHR$(252)"bernehmen"
END IF
IF x>265 AND x<369 AND y>164 AND y<186 AND ja=1 AND index>2 THEN GOSUB gewonnen
RETURN
verloren:
FOR klang=500 TO 100 STEP -50
SOUND klang,1
NEXT klang
betrag&=betrag&-setzen&
GOSUB Haben
GOSUB Gesetzt
GOSUB Ueberweg
GOSUB var
GOSUB Gesetzt
IF betrag&<1 THEN
betrag&=100
setzen&=5
FOR klang=1000 TO 2000 STEP 100
SOUND klang,1,INT(klang/10)
NEXT klang
CALL tilt
GOSUB Haben
GOSUB Gesetzt
FOR klang=2000 TO 1000 STEP -100
SOUND klang,1,INT(klang/10)
NEXT klang
END IF
RETURN HauptSchleife
gewonnen:
FOR klang=100 TO 500 STEP 50
SOUND klang,1
NEXT klang
betrag&=betrag&+setzen&
GOSUB Haben
GOSUB Gesetzt
GOSUB var
GOSUB Ueberweg
GOSUB Gesetzt
IF betrag&>score& THEN
HiJa=1
nam$=nam1$:score&=betrag&
GOSUB HS
END IF
IF betrag&>999999& THEN
betrag&=100
setzen&=5
FOR klang=1000 TO 5000 STEP 500
SOUND klang,1
NEXT klang
FOR klang=5000 TO 1000 STEP -500
SOUND klang,1
NEXT klang
GOSUB Haben
GOSUB Gesetzt
END IF
RETURN HauptSchleife
Ueberweg:
LINE (255,160)-(377,192),0,bf
RETURN
var:
posi%=0:index=0:ja=0:j=1:fehler=0:h(i)=0:ind=1:i=0:setzen&=altsetzen&
RETURN
taste:
xs=0
FOR i=1 TO 4
LINE (xs+37,122)-(xs+157,152),3,bf
LINE (xs+40,120)-(xs+160,150),5,bf
LINE (xs+50,125)-(xs+150,145),7,bf
xs=xs+140
NEXT i
COLOR 5,7
LOCATE 17,8 : PRINT "+ Setzen -"
LOCATE 17,28: PRINT "Spiel"
LOCATE 17,46: PRINT "h"CHR$(246)"her"
LOCATE 17,63: PRINT "tiefer"
RETURN
Warte:
FOR i=1 TO 100 : NEXT
RETURN
KartenHinten:
FOR karten%=40 TO 480 STEP 110
CALL karte (karten%,6)
NEXT karten%
RETURN
ZufallsZahl:
index=index+1
zaehler=zaehler+1
neu:
zahl(index)=INT(1+((32)*RND))
help=zahl(index)
h(i)=index
FOR i=1 TO 6
IF zahl(i)=help AND h(i) <> index THEN GOTO neu
NEXT i
IF posi%>440 THEN posi%=0
IF zahl(index)= 1 THEN CALL Sieben(posi%,KaroKlein%(),KaroGross%(),4)
IF zahl(index)= 2 THEN CALL Sieben(posi%,HerzKlein%(),HerzGross%(),4)
IF zahl(index)= 3 THEN CALL Sieben(posi%,PikKlein%(),PikGross%(),3)
IF zahl(index)= 4 THEN CALL Sieben(posi%,KreuzKlein%(),KreuzGross%(),3)
IF zahl(index)= 5 THEN CALL Acht(posi%,KaroKlein%(),KaroGross%(),4)
IF zahl(index)= 6 THEN CALL Acht(posi%,HerzKlein%(),HerzGross%(),4)
IF zahl(index)= 7 THEN CALL Acht(posi%,PikKlein%(),PikGross%(),3)
IF zahl(index)= 8 THEN CALL Acht(posi%,KreuzKlein%(),KreuzGross%(),3)
IF zahl(index)= 9 THEN CALL Neun(posi%,KaroKlein%(),KaroGross%(),4)
IF zahl(index)=10 THEN CALL Neun(posi%,HerzKlein%(),HerzGross%(),4)
IF zahl(index)=11 THEN CALL Neun(posi%,PikKlein%(),PikGross%(),3)
IF zahl(index)=12 THEN CALL Neun(posi%,KreuzKlein%(),KreuzGross%(),3)
IF zahl(index)=13 THEN CALL Zehn(posi%,KaroKlein%(),KaroGross%(),4)
IF zahl(index)=14 THEN CALL Zehn(posi%,HerzKlein%(),HerzGross%(),4)
IF zahl(index)=15 THEN CALL Zehn(posi%,PikKlein%(),PikGross%(),3)
IF zahl(index)=16 THEN CALL Zehn(posi%,KreuzKlein%(),KreuzGross%(),3)
IF zahl(index)=17 THEN CALL Bube(posi%,KaroKlein%(),KaroGross%(),4)
IF zahl(index)=18 THEN CALL Bube(posi%,HerzKlein%(),HerzGross%(),4)
IF zahl(index)=19 THEN CALL Bube(posi%,PikKlein%(),PikGross%(),3)
IF zahl(index)=20 THEN CALL Bube(posi%,KreuzKlein%(),KreuzGross%(),3)
IF zahl(index)=21 THEN CALL Dame(posi%,KaroKlein%(),KaroGross%(),4)
IF zahl(index)=22 THEN CALL Dame(posi%,HerzKlein%(),HerzGross%(),4)
IF zahl(index)=23 THEN CALL Dame(posi%,PikKlein%(),PikGross%(),3)
IF zahl(index)=24 THEN CALL Dame(posi%,KreuzKlein%(),KreuzGross%(),3)
IF zahl(index)=25 THEN CALL Koenig(posi%,KaroKlein%(),KaroGross%(),4)
IF zahl(index)=26 THEN CALL Koenig(posi%,HerzKlein%(),HerzGross%(),4)
IF zahl(index)=27 THEN CALL Koenig(posi%,PikKlein%(),PikGross%(),3)
IF zahl(index)=28 THEN CALL Koenig(posi%,KreuzKlein%(),KreuzGross%(),3)
IF zahl(index)=29 THEN CALL Asi(posi%,KaroKlein%(),KaroGross%(),4)
IF zahl(index)=30 THEN CALL Asi(posi%,HerzKlein%(),HerzGross%(),4)
IF zahl(index)=31 THEN CALL Asi(posi%,PikKlein%(),PikGross%(),3)
IF zahl(index)=32 THEN CALL Asi(posi%,KreuzKlein%(),KreuzGross%(),3)
RETURN
Gesetzt:
COLOR 5,4
IF setzen&<1 THEN setzen&=1
IF setzen&>betrag& THEN setzen&=betrag&
LOCATE 25,14 :PRINT "Gesetzt:";
PRINT USING"#####";setzen&;
PRINT " $"
RETURN
Haben:
COLOR 5,4
LOCATE 25,51 :PRINT "Guthaben:";
PRINT USING"######";betrag&;
PRINT " $"
RETURN
hiscoreLesen:
OPEN "Hiscore_HochTief" FOR INPUT AS 1
INPUT #1,score&
INPUT #1,nam$
CLOSE 1
RETURN
HiscoreSchreiben:
OPEN "Hiscore_HochTief" FOR OUTPUT AS 1
PRINT #1,score&
PRINT #1,nam$
CLOSE 1
RETURN
fehler:
IF ERR=53 THEN
IF fehler=0 THEN
errtext$="Diskfont.bmap"
GOTO Fehlermeldung
END IF
IF fehler=1 THEN
errtext$="graphics.bmap"
GOTO Fehlermeldung
END IF
IF fehler=2 THEN
errtext$="intuition.bmap"
GOTO Fehlermeldung
END IF
IF fehler=3 THEN
nam$="Andreas":score&=6125&
GOSUB HiscoreSchreiben
WINDOW 2
END IF
END IF
RESUME
Fehlermeldung:
WINDOW 3,"Error",(100,50)-(540,100),0,1
PALETTE 2,1,1,1:PALETTE 0,0,0,0:PALETTE 1,.5,.5,.5
COLOR 2,0:CLS
LOCATE 2,1
PRINT "Keine "errtext$" vorhanden"
PRINT "Programm wird beendet"
PRINT "Taste DrÜcken"
SLEEP:SLEEP:SLEEP
GOTO ende
SUB karte (position%,fa%) STATIC
LINE (position%-6,43)-(position%+95,114),3,bf
LINE (position%,39)-(position%+100,111),fa%,bf
END SUB
SUB schreiben (po%,Text$,fa%) STATIC
CALL SetDrMd&(WINDOW(8),0) 'JAM1
COLOR fa%,2
lo=INT(po%/8)
IF (po%=0 OR po%=440) AND Text$="10" THEN lo=lo-1
LOCATE 6,7+lo : PRINT Text$ : LOCATE 14,7+lo :PRINT Text$
LOCATE 6,17+lo : PRINT Text$ : LOCATE 14,17+lo :PRINT Text$
CALL SetDrMd&(WINDOW(8),1) 'JAM2 (normal)
END SUB
SUB Asi (po%,FeldNamKl%(),FeldnamGr%(),farb%) STATIC
CALL karte (po%+40,2)
PUT (47+po%,49),FeldNamKl%,PSET
PUT (126+po%,49),FeldNamKl%,PSET
PUT (47+po%,95),FeldNamKl%,PSET
PUT (126+po%,95),FeldNamKl%,PSET
PUT (82+po%,70),FeldnamGr%,PSET
CALL schreiben (po%,"A",farb%)
END SUB
SUB Koenig (po%,FeldNamKl%(),FeldnamGr%(),farb%) STATIC
CALL karte (po%+40,2)
PUT (47+po%,49),FeldNamKl%,PSET
PUT (126+po%,49),FeldNamKl%,PSET
PUT (47+po%,95),FeldNamKl%,PSET
PUT (126+po%,95),FeldNamKl%,PSET
PUT (56+po%,42),FeldnamGr%,PSET
PUT (106+po%,97),FeldnamGr%,PSET
CALL schreiben (po%,"K",farb%)
END SUB
SUB Dame (po%,FeldNamKl%(),FeldnamGr%(),farb%) STATIC
CALL karte (po%+40,2)
PUT (47+po%,49),FeldNamKl%,PSET
PUT (126+po%,49),FeldNamKl%,PSET
PUT (47+po%,95),FeldNamKl%,PSET
PUT (126+po%,95),FeldNamKl%,PSET
PUT (56+po%,42),FeldnamGr%,PSET
PUT (106+po%,97),FeldnamGr%,PSET
CALL schreiben (po%,"D",farb%)
END SUB
SUB Bube (po%,FeldNamKl%(),FeldnamGr%(),farb%) STATIC
CALL karte (po%+40,2)
PUT (47+po%,49),FeldNamKl%,PSET
PUT (126+po%,49),FeldNamKl%,PSET
PUT (47+po%,95),FeldNamKl%,PSET
PUT (126+po%,95),FeldNamKl%,PSET
PUT (56+po%,42),FeldnamGr%,PSET
PUT (106+po%,97),FeldnamGr%,PSET
CALL schreiben (po%,"B",farb%)
END SUB
SUB Zehn (po%,FeldNamKl%(),FeldnamGr%(),farb%) STATIC
CALL karte (po%+40,2)
PUT (47+po%,49),FeldNamKl%,PSET
PUT (126+po%,49),FeldNamKl%,PSET
PUT (47+po%,95),FeldNamKl%,PSET
PUT (126+po%,95),FeldNamKl%,PSET
FOR i=42 TO 97 STEP 18
PUT (58+po%,i),FeldnamGr%,PSET
PUT (104+po%,i),FeldnamGr%,PSET
NEXT i
PUT (81+po%,51),FeldnamGr%,PSET
PUT (81+po%,88),FeldnamGr%,PSET
CALL schreiben (po%,"10",farb%)
END SUB
SUB Neun (po%,FeldNamKl%(),FeldnamGr%(),farb%) STATIC
CALL karte (po%+40,2)
PUT (47+po%,49),FeldNamKl%,PSET
PUT (126+po%,49),FeldNamKl%,PSET
PUT (47+po%,95),FeldNamKl%,PSET
PUT (126+po%,95),FeldNamKl%,PSET
FOR i=42 TO 97 STEP 18
PUT (58+po%,i),FeldnamGr%,PSET
PUT (104+po%,i),FeldnamGr%,PSET
NEXT i
PUT (81+po%,70),FeldnamGr%,PSET
CALL schreiben (po%,"9",farb%)
END SUB
SUB Acht (po%,FeldNamKl%(),FeldnamGr%(),farb%) STATIC
CALL karte (po%+40,2)
PUT (47+po%,49),FeldNamKl%,PSET
PUT (126+po%,49),FeldNamKl%,PSET
PUT (47+po%,95),FeldNamKl%,PSET
PUT (126+po%,95),FeldNamKl%,PSET
FOR i=42 TO 97 STEP 27
PUT (58+po%,i),FeldnamGr%,PSET
PUT (104+po%,i),FeldnamGr%,PSET
NEXT i
PUT (81+po%,55),FeldnamGr%,PSET
PUT (81+po%,84),FeldnamGr%,PSET
CALL schreiben (po%,"8",farb%)
END SUB
SUB Sieben (po%,FeldNamKl%(),FeldnamGr%(),farb%) STATIC
CALL karte (po%+40,2)
PUT (47+po%,49),FeldNamKl%,PSET
PUT (126+po%,49),FeldNamKl%,PSET
PUT (47+po%,95),FeldNamKl%,PSET
PUT (126+po%,95),FeldNamKl%,PSET
FOR i=42 TO 97 STEP 27
PUT (58+po%,i),FeldnamGr%,PSET
PUT (104+po%,i),FeldnamGr%,PSET
NEXT i
PUT (81+po%,55),FeldnamGr%,PSET
CALL schreiben (po%,"7",farb%)
END SUB
SUB diskfont(font$,height%) STATIC
SHARED strFont&
prefs%=96
font0$=font$+".font"+CHR$(0)
IF strFont&<>0 THEN CALL CloseFont(strFont&)
textAttr&(0)=SADD(font0$)
textAttr&(1)=height%*2^16+prefs%
strFont&=OpenDiskFont&(VARPTR(textAttr&(0)))
IF strFont&<>0 THEN CALL SetFont (WINDOW(8),strFont&)
END SUB
' *********** Shadow-Print ***********
'_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
SUB shadow(Text$,spacing%) STATIC
depth%=2
crsX%=POS(0)
crsY%=(CSRLIN)*8 'Cursor-Koordinaten
IF crsY%<8 THEN crsY%=8 'erste BS-Zeile ins Format
CALL SetDrMd&(WINDOW(8),0) 'JAM1
FOR loop%=1 TO LEN(Text$)
b$=MID$(Text$,loop%,1)
e&=Move&(WINDOW(8),crsX%-depth%,crsY%+depth%)
COLOR 3,0 'Schatten (schwarz) malen
PRINT b$
COLOR 4,0
e&=Move&(WINDOW(8),crsX%,crsY%)
PRINT b$ 'Zeichen malen
crsX%=crsX%+spacing%
NEXT loop%
PRINT
CALL SetDrMd&(WINDOW(8),1) 'JAM2 (normal)
END SUB
SUB tilt STATIC
he&=PEEKL(WINDOW(7)+46)
rp&=he&+84
y%=255
FOR i%=0 TO 49
x%=16*i%
CALL ScrollRaster(rp&,0,i%-20,x%,0,x%+15,y%)
NEXT i%
x%=639 : n%=INT(255/50)
FOR i%=0 TO 59
y%=i%*n%
CALL ScrollRaster(rp&,25-i%,0,0,y%,x%,y%+n%-1)
NEXT i%
FOR i=1 TO 2000:NEXT i
FOR i=1 TO 65
CALL MoveScreen(he&,0,4)
NEXT i
FOR i%=0 TO 59
y%=i%*n%
CALL ScrollRaster(rp&,-25+i%,0,0,y%,x%,y%+n%-1)
NEXT i%
FOR i%=0 TO 49
x%=16*i%
CALL ScrollRaster(rp&,0,-i%+20,x%,0,x%+15,y%)
NEXT i%
FOR i=1 TO 65
CALL MoveScreen(he&,0,-4)
NEXT i
END SUB
'_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
SUB shadow2(Text$,spacing%) STATIC
depth%=2
crsX%=POS(0)
crsY%=(CSRLIN)*8 'Cursor-Koordinaten
IF crsY%<8 THEN crsY%=8 'erste BS-Zeile ins Format
CALL SetDrMd&(WINDOW(8),0) 'JAM1
FOR loop%=1 TO LEN(Text$)
b$=MID$(Text$,loop%,1)
e&=Move&(WINDOW(8),crsX%+depth%,crsY%+depth%)
COLOR 0,0 'Schatten (schwarz) malen
PRINT b$
COLOR 4,0
e&=Move&(WINDOW(8),crsX%,crsY%)
PRINT b$ 'Zeichen malen
crsX%=crsX%+spacing%
NEXT loop%
PRINT
CALL SetDrMd&(WINDOW(8),1) 'JAM2 (normal)
END SUB